Привет, друзья!
Раз никто не хочет писать про Плаза-протокол без рекламной воды, я решил взять на себя смелость. Готовьтесь к техно-экскурсии с юмором и без занудства. Давайте разберем, что это за штуковина такая – Плаза-протокол, как он работает, и почему его стоит заменить на что-то более современное.
Что такое Плаза-протокол?Плаза-протокол (Plaza II) — это коммуникационный протокол, разработанный Московской биржей для обеспечения высокоскоростной и надежной передачи торговой и рыночной информации между участниками торгов. Он состоит из нескольких компонентов, каждый из которых выполняет свою важную роль.
Для начала работы с Плаза-протоколом необходимо установить соответствующие компоненты. Вот пример установки и настройки на Linux:
<code>chmod 755 ./install.sh ./install.sh ./cgate_linux_amd64-7.12.0.103.zip </code>
-- Настройки SEC_CODE = "SBER" -- Код инструмента CLASS_CODE = "TQBR" -- Код класса инструмента SHORT_MA_PERIOD = 10 -- Период короткой скользящей средней LONG_MA_PERIOD = 50 -- Период длинной скользящей средней QTY = 1 -- Количество лотов -- Переменные short_ma = {} long_ma = {} prices = {} position = 0 -- Текущая позиция: 0 - нет позиции, 1 - лонг, -1 - шорт -- Функция для расчета скользящей средней function calculate_ma(prices, period) local sum = 0 for i = #prices-period+1, #prices do sum = sum + prices[i] end return sum / period end -- Функция для обработки новых тиков function OnAllTrade(alltrade) if alltrade.sec_code == SEC_CODE and alltrade.class_code == CLASS_CODE then table.insert(prices, alltrade.price) if #prices >= LONG_MA_PERIOD then table.
Привет, друзья!
И снова с вами OSAEngine.ru. Сегодня мы рассмотрим, почему FAST-протокол, который долгое время использовался для передачи данных на финансовых рынках, устарел и был заменен более современными и эффективными решениями, такими как SBE (Simple Binary Encoding). Подробности о протоколе SBE я расскажу в следующей статье, так что не переключайтесь и готовьтесь к увлекательному путешествию в мир бинарного кодирования!
Если вы только начинаете рассматривать вопрос прямого рыночного доступа (DMA) и подключения к торговым системам, важно ориентироваться на современные стандарты и технологии. Протокол FAST (FIX Adapted for STreaming) на сегодняшний день устарел и имеет ряд ограничений, которые делают его менее подходящим для высокочастотной торговли и современных торговых решений.
Сложность обработки данных:
Внимание! Пожалуйста, уберите от экранов всех программистов в финансовой области с опытом менее 15 лет — мы будем обсуждать настоящие чудеса инженерии.
Протокол FAST (FIX Adapter for STreaming) — это международный стандарт, используемый для обмена данными в реальном времени на финансовых рынках. Этот протокол был разработан для повышения эффективности и скорости обмена информацией между различными участниками рынка, такими как брокеры, биржи, банки и другие финансовые учреждения. Протокол FAST является ключевым элементом в инфраструктуре высокочастотной торговли (HFT) и продолжает оставаться актуальным, несмотря на его «почтенный» возраст.
Протокол FAST был разработан организацией FIX Protocol Limited (FPL) в начале 2000-х годов как улучшенная версия протокола FIX (Financial Information eXchange). Основная цель разработки FAST заключалась в снижении объема передаваемых данных и увеличении скорости их передачи, что стало критически важным с ростом объемов торгов и появлением высокочастотной торговли (HFT).
Привет, друзья!
Сегодня я нашел отличный сборник статей по FIX-протоколу от уважаемого Андрея K. В своих статьях Андрей старательно описал, как устроен FIX-протокол, начиная с основ и заканчивая практическими примерами. Эти материалы станут отличным руководством для всех, кто хочет разобраться в FIX и начать его использовать.
Чтобы труды Андрея не потерялись, я решил написать об этом отдельно, собрав все статьи и дополнив их массой открытых примеров. Вы можете найти эти материалы как у себя на сайте, так и в своем блоге.
Изучаю FIX протокол с нуля. Разбор протокола, первый код на С#
Изучаю FIX протокол с нуля. Подводим итоги первой части. Первая борьба за миллисекунды
QuickFIX/n
Привет, ребята!
Я немного доработал код на C# для АлгоПака после обсуждений в чате. Теперь в примерах есть сборка стаканов! Выглядит вывод лог теперь так:
Если хотите попробовать новые фишки — милости прошу! Кому это пригодится — пишите, будет интересно узнать, насколько это полезно.
Спасибо за ваши отзывы и поддержку! Полные исходники проекта выложил у себя https://osaengine.ru/2024/07/02/moex-algopack-%D1%81%D1%82%D0%B0%D0%BA%D0%B0%D0%BD%D1%8B.html
Сделал простенький пример-код как работать с веб сокетами АлгоПака.
Работа в действии выглядит так:
Пример кода<code>namespace OsaEngine.MoexAlgoPack; using System; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Net.WebSockets; public class MoexAlgoPackSocketClient(string url) : IAsyncDisposable { private readonly Uri _uri = new(url); private readonly ClientWebSocket _clientWebSocket = new(); public async ValueTask ConnectAsync(string domain = "DEMO", string login = "guest", string passcode = "guest", CancellationToken cancellationToken = default) { await _clientWebSocket.ConnectAsync(_uri, cancellationToken); await SendAsync($"CONNECT\ndomain:{domain}\nlogin:{login}\npasscode:{passcode}\n\n\0", cancellationToken); } public ValueTask SubscribeAsync(object id, string destination, string selector, CancellationToken cancellationToken = default) { return SendAsync($"SUBSCRIBE\nid:{id}\ndestination:{destination}\nselector:{selector}\n\n\0", cancellationToken); } public async ValueTask SendAsync(string message, CancellationToken cancellationToken = default) { var messageBytes = Encoding.
Итак, это было обычное скучное утро, когда я решил: «А почему бы не попробовать этот Алгопак от Московской биржи?» Я давно слышал про него, а тут как раз была пара свободных часов и чашка горячего кофе. Что может пойти не так, верно?
Регистрироваться было просто. Почта, пароль, подтверждение — стандартный набор. И вот я уже на главной странице Алгопака, который выглядит достаточно дружелюбно. Однако, первый звоночек прозвенел, когда я начал искать справочную информацию. Документация оказалась несколько запутанной, а некоторые разделы вовсе не обновлялись годами.
Для начала я решил не мудрить и создать что-то простое. Пусть это будет стратегия на основе скользящих средних (SMA). Вот мой пример кода на Python, который я решил использовать:
import pandas as pd import numpy as np # Загружаем данные data = pd.read_csv('historical_data.csv') # Параметры стратегии short_window = 40 long_window = 100 # Создаем сигналы signals = pd.